#动态语言：运行时可以改变其结构的语言，例如新的函数、对象、甚至代码可以被引进，
# 已有的函数可以被删除或是其他结构上的变化。如php,JavaScript,python都是动态语言，C，C#，java是静态语言。
# 所以python可以在程序运行过程中添加属性和方法。
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age
        pass
    pass
# 创建实例对象
xm=Person("小明",26)
# 动态添加实例属性
xm.sex="男"
print(xm.sex)
xh=Person("小红",24)
# print(xh.sex)    #报错，动态添加的实例属性，只能用该实例对象调用，其他对象无法获取
# 添加类属性
Person.eye=2
print(Person.eye)
print(xm.eye)
print(xh.eye)

# 动态添加实例方法
# 1、创建一个实例方法
def eat(self):
    print("吃饭")
    pass
# 2、动态添加实例方法需要使用types，引入types
import types
# 3、使用types.MethodType进行动态绑定实例方法
xm.eat=types.MethodType(eat,xm)
xm.eat()

# 给类绑定类方法和静态方法
# 使用方式：类名.方法名 = xxxx
@classmethod
def run(cls):
    print("奔跑吧，少年！")
    pass
@staticmethod
def sleep():
    print("睡觉")
    pass
Person.run=run
Person.sleep=sleep
Person.run()
Person.sleep

